package com.samon.component;
/*
               _.---..._
           ./^         ^-._
         ./^C===.         ^\.   /\
        .|'     \\        _ ^|.^.|
   ___.--'_     ( )  .      ./ /||
  /.---^T\      ,     |     / /|||
 C'   ._`|  ._ /  __,-/    / /-,||
      \ \/    ;  /O  / _    |) )|,
       i \./^O\./_,-^/^    ,;-^,'
        \ |`--/ ..-^^      |_-^
         `|  \^-           /|:
          i.  .--         / '|.
           i   =='       /'  |\._
         _./`._        //    |.  ^-ooo.._
  _.oo../'  |  ^-.__./X/   . `|    | d
				 比克叔叔保佑
				 代码无BUG!
 */

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Random;

/**
 * 测试发送
 * 
 * @author Mr.Wu on 2018/9/7
 */
@Controller
public class WebSocketComponent {

	/**
	 * 根目录页
	 * 
	 * @return
	 */
	@GetMapping("/")
	public String index() {
		return "index";
	}

	/** 消息发送模板 */
	@Autowired
	private SimpMessagingTemplate simpMessagingTemplate;

	/**
	 * 测试每隔1秒发送一次
	 * 实际场景中可以自行封装入参, 根据实际业务来进行人肉调用
	 * 比如回调之后, 调用biz, biz需要返回一个对象, 接口层根据对象的内容决定是否推送, 推送什么内容至前端
	 */
	@Scheduled(fixedRate = 1000)
	public void sendMessage() {
		
		// 将消息发送到rail围栏主题, 前端需要订阅这个主题
		simpMessagingTemplate.convertAndSend("/topic/rail", (new Random().nextInt()) + "号围栏报警");
	}
	
	
}
